perm filename HBUG.PUB[2,TES] blob sn#063457 filedate 1973-09-20 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00007 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	.<< PUB DECLARATIONS >>
C00011 00003	.<< DEFINITIONS AND MACROS FOR BIT TABLES >>
C00013 00004	.<< TITLE PAGE >> BLANK PAGE
C00015 00005	.SEC Obsolete or Otherwise Useless UUOs,Obsolete UUOs,"UUOs, obsolete"
C00023 00006	.STANDARD BACK
C00029 00007	.PAGE FRAME 100 HIGH WCHARS+10 WIDE
C00031 ENDMK
C⊗;
.<< PUB DECLARATIONS >>

.<< THESE ARE LEFT ON/OFF OVER THE WHOLE MANUSCRIPT FOR CONVIENCE! >>
.TURN ON "{#%"
.TURN OFF "-" << Too many minus signs would be mistaken for hyphens. >>

.DEVICE XGP;

.	FONT 6 "SHD40"
.	FONT 5 "NGB25"		<< BOLD FONT FOR HEADINGS/TITLES >>
.	FONT 4 "FIX20"		<< SOME EXAMPLES: SMALL FIXED WIDTH FONT >>
.	FONT 3 "FIX25"		<< PREFORMATTED STUFF: FIXED WIDTH FONT >>
.	FONT 2 "BDI25"		<< ITALICS (UNDERLINED WORDS) >>
.	FONT 1 "BDR25"		<< NORMAL FONT: VARIABLE WIDTH >>
.IF XCRIBL THEN START
.	!XGPLFTMAR ← 216;
.	AT "⊗∪" STUFF "∩" ⊂
%2{}STUFF{}%*{	⊃
.END	ELSE START
.	TURN ON "↓_"
.	AT "⊗∪" STUFF "∩" ⊂
↓_STUFF_↓{	⊃
.END

.HLINES← IF XCRIBL THEN 60 ELSE 53;	<< NUMBER OF LINES/PAGE >>
.WCHARS← IF XCRIBL THEN 81 ELSE 69;	<< NUMBER OF CHARS/LINE >>
.PAGE FRAME HLINES+1 HIGH WCHARS WIDE;
.TITLE AREA FOOTING LINE HLINES+1 CHARS 1 TO WCHARS;
.TITLE AREA HEADING LINES 1 TO 3 CHARS 1 TO WCHARS;
.AREA TEXTER LINES 4 TO HLINES CHARS 1 TO WCHARS;
.PLACE TEXTER;

.VARIABLE SECNAME, SSNAME, SSNUMBER;
.COUNT PAGE TO 999;
.COUNT SECTION;
.COUNT SUBSECTION IN SECTION PRINTING "!.1";
.COUNT APPENDIX;

.MACRO SEC(NAME,ABBREV,PHRASE,LABEL) ⊂
.	SSNAME ← SECNAME ← IF "ABBREV"≠NULL THEN "ABBREV" ELSE "NAME";
.	SSNUMBER ← (SECTION+1)&"."
.	SKIP TO COLUMN 1; LABEL  NEXT SECTION!;
.		BEGIN
.		CENTER
%5SECTION {!}
.		SKIP
.NAM←↑"NAME";
{NAM}%*
.		SKIP 3;
.		CAT("PHRASE","NAME");
.		SEND CONTENTS ⊂ SKIP 2;
∂4{SECTION!}∂8{NAM}→{PAGE!}{SKIP;⊃
.		END	⊃

.MACRO SS(NAME,PHRASE,LABEL) ⊂
.		SSNUMBER←SECTION!&"."&(SUBSECTION+1);
.		SSNAME←"NAME";
.		IF LINES≤7 THEN NEXT PAGE;
.		LABEL  NEXT SUBSECTION!;
.		BEGIN
.		SKIP 3
.		CAT("PHRASE","NAME");
.		SEND CONTENTS ⊂
∂(13){!}∂(19)NAME\∞ ∞.∞ →#{PAGE!}
. ⊃
.		CENTER
%5{!}##NAME%*{	SKIP;
.		END		⊃

.MACRO SSP(NAME,PHRASE,LABEL) ⊂
.	SKIP TO COLUMN 1
.SS("NAME","PHRASE","LABEL")  ⊃


.MACRO CAT(PHRASE,NAME) ⊂IF "PHRASE"≠NULL THEN
.	IF "PHRASE"="←" THEN SEND INDEX ⊂}<{PAGE}≤NAME≥{⊃
.	ELSE SEND INDEX ⊂}<{PAGE}≤PHRASE≥{⊃	⊃

.AT "⊗→" SPECIFIC "↔" GENERIC "←" ⊂
.IF "GENERIC"≠NULL THEN
.	START	SEND INDEX ⊂}<{PAGE}≤GENERIC, SPECIFIC≥{⊃; "SPECIFIC GENERIC"; END
.ELSE	START	SEND INDEX ⊂}<{PAGE}≤SPECIFIC≥{⊃; "SPECIFIC"; END ⊃

.SEND INDEX ⊂}<see front cover≤UUOs by name≥{⊃
.SEND INDEX ⊂}<see back cover≤UUOs by number≥{⊃

.MACRO STANDARD BACK ⊂
.SSNAME ← "INDEX"; SECNAME ← SSNUMBER ← NULL
.	BEGIN FILL NOJUST INDENT 0,3; PREFACE 0;
.	AREA TEXTE LINES 4 TO 15 IN 2 COLUMNS 3 APART;
.	PORTION INDEX;
.	IF EVEN PAGE THEN NEXT PAGE;
.	PLACE TEXTE;
.	SELECT 1;
.	SECNAME ← "INDEX";
.	WASWORD ← WASPG ← NULL ;
.	AT "<" PGNO "≤" PHRASE "≥" ⊂
.		IF "PHRASE" ≠ WASWORD THEN START BREAK }PHRASE   PGNO{ END
.		ELSE IF "PGNO" ≠ WASPG THEN }, PGNO{ ;
.		WASPG ← "PGNO" ; WASWORD ← "PHRASE" ; ⊃
INDEX
.SKIP
.	RECEIVE "≤≥"
.	END;
.SECNAME ← SSNAME ← "CONTENTS"
.SSNUMBER ← NULL
.COUNT PAGE PRINTING "i"
.PORTION CONTENTS
.FILL NOJUST CRBREAK TURN ON "←→∂\∞"
.INDENT 0,30,10 PREFACE 0 TABS 30,33,36,39,42,45,48,51,54,57,60,63
←T A B L E   O F   C O N T E N T S
.SKIP 3
SECTION→PAGE
.SKIP;
.RECEIVE
.⊃

.MACRO APP(NAME,ABBREV,PHRASE,LABEL) ⊂
.		SECNAME ← IF "ABBREV"≠NULL THEN "ABBREV" ELSE "NAME";
.		SSNUMBER ← NULL;
.		SSNAME ← "Appendix "&(APPENDIX+1);
.	SKIP TO COLUMN 1; LABEL  NEXT APPENDIX!;
.		BEGIN
.		CENTER
%5APPENDIX {!}
.		SKIP
.NAM←↑"NAME"
{NAM}%*
.		SKIP 3
.		CAT("PHRASE","NAME");
.		SEND CONTENTS ⊂ SKIP;
∂4{APPENDIX!}∂8{NAM}→{PAGE!}{  ⊃
.		END	⊃

.MACRO CENT (NAME,PHRASE) ⊂IF LINES ≤ 7 THEN SKIP TO COLUMN 1;;
.CAT("PHRASE","NAME");
.BEGIN CENTER SKIP 3
%5NAME%*
.SKIP; END
.⊃


.MACRO UUO (NAME,OPCODE,OP2) ⊂
.SKIP 3
.BEGIN NOFILL GROUP;TABS 9;TURN ON "\";
%5NAME%*\{IF "OPCODE"="CALLI" THEN
.	START; "[OP=047, ADR=OP2]  CALLI OP2"; CAT "NAME UUO (CALLI OP2)";
.	SEND NAMETABLE ⊂}<NAME≤CALLI OP2≥{PAGE}>{⊃	END
.XTDUUO(TTYUUO,051,OPCODE,OP2,NAME)
.XTDUUO(PTYUUO,711,OPCODE,OP2,NAME)
.XTDUUO(PPIOT,702,OPCODE,OP2,NAME)
.XTDUUO(PGIOT,715,OPCODE,OP2,NAME)
.XTDUUO(INTUUO,723,OPCODE,OP2,NAME)
.XTDUUO(MAIL,710,OPCODE,OP2,NAME)
.ELSE	START; "[OP=OPCODE]"; CAT "NAME UUO (UUO OPCODE)";
.	SEND NAMETABLE ⊂}<NAME≤OPCODE≥{PAGE}>{⊃		END
.TURN OFF;SVERBATIM
------------------------------------------
.⊃

.MACRO XTDUUO(GROUPNAME,OPCODE,NAME,ACFIELD,SPECUUO)⊂ELSE IF "NAME"="GROUPNAME" THEN
.START; "[OP=OPCODE, AC=ACFIELD]  GROUPNAME ACFIELD,";
.	CAT "SPECUUO UUO (GROUPNAME ACFIELD, )" 
.	SEND NAMETABLE ⊂}<SPECUUO≤GROUPNAME ACFIELD,≥{PAGE}>{⊃	END	⊃

.MACRO UUOX ⊂BEGIN SKIP 3; GROUP SVERBATIM
------------------------------------------
.⊃

.MACRO OLDUUO (NAME,OPCODE,OP2) ⊂
.BEGIN NOFILL;TABS 9;TURN ON "\";
%5NAME%*\{IF "OPCODE"="CALLI" THEN
.	START; "[OP=047, ADR=OP2]  CALLI OP2"; CAT "NAME UUO (CALLI OP2)";
.	SEND NAMETABLE ⊂}<NAME≤CALLI OP2≥{PAGE}>{⊃	END
.ELSE	"[OP=OPCODE]"
.END
.⊃

.MACRO UEND ⊂SKIP; IF LINES > 2 THEN APART; FILL; SELECT 1	⊃

.MACRO SVERBATIM ⊂VERBATIM; SELECT 3 ⊃

.COUNT FOOTNOTE INLINE TO 4 IN PAGE PRINTING ⊂"****"[1 TO FOOTNOTE]⊃;

.AT "⊗↓" ENTRY "←" ⊂NEXT FOOTNOTE ; ! ;
.SEND FOOT ⊂
{!} ENTRY
.BREAK ⊃ ⊃

.NBRXTDUUOS←"six" << the number of extended UUOs, which see in INTRODUCTION >>

.MACRO YON (LABEL) ⊂"page ";PAGE! LABEL⊃

.MACRO YONAPP (LABEL) ⊂"Appendix ";APPENDIX! LABEL⊃

.MACRO YONSEC (LABEL) ⊂"Section ";SECTION! LABEL⊃

.MACRO YONSS (LABEL) ⊂"Section ";SUBSECTION! LABEL⊃
.<< DEFINITIONS AND MACROS FOR BIT TABLES >>

.<< HERE IS A SAMPLE MULTIPLE-BIT TABLE ENTRY:
.     "30:35\0,,77\"			END OF COMMENT >>

.B0  ← " 0\400000,,0\"
.B1  ← " 1\200000,,0\"
.B2  ← " 2\100000,,0\"
.B3  ← " 3\40000,,0\"
.B4  ← " 4\20000,,0\"
.B5  ← " 5\10000,,0\"
.B6  ← " 6\4000,,0\"
.B7  ← " 7\2000,,0\"
.B8  ← " 8\1000,,0\"
.B9  ← " 9\400,,0\"
.B10 ← "10\200,,0\"
.B11 ← "11\100,,0\"
.B12 ← "12\40,,0\"
.B13 ← "13\20,,0\"
.B14 ← "14\10,,0\"
.B15 ← "15\4,,0\"
.B16 ← "16\2,,0\"
.B17 ← "17\1,,0\"
.B18 ← "18\0,,400000\"
.B19 ← "19\0,,200000\"
.B20 ← "20\0,,100000\"
.B21 ← "21\0,,40000\"
.B22 ← "22\0,,20000\"
.B23 ← "23\0,,10000\"
.B24 ← "24\0,,4000\"
.B25 ← "25\0,,2000\"
.B26 ← "26\0,,1000\"
.B27 ← "27\0,,400\"
.B28 ← "28\0,,200\"
.B29 ← "29\0,,100\"
.B30 ← "30\0,,40\"
.B31 ← "31\0,,20\"
.B32 ← "32\0,,10\"
.B33 ← "33\0,,4\"
.B34 ← "34\0,,2\"
.B35 ← "35\0,,1\"

.MACRO BITSTABLE(NM,TITLE)⊂BEGIN
.	NARROW 2,2; GROUP; TABS 8,22,31; TURN ON "\";
.	IF "NM"=NULL THEN TABLEINDENT←21 ELSE TABLEINDENT←30;
.	INDENT 0,TABLEINDENT;
⊗∪Bits\Octal\{IF "NM"≠NULL THEN "Name\"}TITLE∩
.	BREAK ⊃
.<< TITLE PAGE >> BLANK PAGE

.INSERT NAMETABLE;
.INSERT NUMBERTABLE;
.PORTION TITLEPAGE;

.SELECT 1

.BEGIN "TITLE"; NOFILL; TURN ON "→"; SELECT 5;
STANFORD ARTIFICIAL INTELLIGENCE LABORATORY→September 1973
OPERATING NOTE 55.3
.IF XCRIBL THEN SKIP 5
.SKIP 7;CENTER
%6U U O   M A N U A L%*
.SKIP 3
by
.SKIP 2
Martin Frost
.END "TITLE"

.IF XCRIBL THEN SKIP 6;

.BEGIN "ABSTRACT"; SKIP 4;
ABSTRACT:

This document describes the UUOs (monitor calls) available
to users of the Stanford Artificial Intelligence Laboratory timesharing system.
Additional general information relevant to the use of the UUOs is contained
in the introductory section, and some useful
tables are included in the appendices.
This manual supersedes SAILON 55.2 by Andy Moorer (Monitor Manual,
Chapter II).

.IF XCRIBL THEN SKIP 4

.SKIP 6;
This work was supported by the Advanced Research Projects Agency of
the Office of the Secretary of Defense under contract SD-183.
.END "ABSTRACT"

.SECNAME ← SSNUMBER ← SSNAME ← NULL
.ODD HEADING(%5{SSNUMBER},,{SSNAME}    {PAGE}%*)
.EVEN HEADING(%5{PAGE}    {SECNAME},,{SSNUMBER}%*)

.INSERT CONTENTS;
.PORTION MAINPORTION;
.SEC Obsolete or Otherwise Useless UUOs,Obsolete UUOs,"UUOs, obsolete"

This section documents some UUOs that still work but which, for
various reasons, are obsolete.  Mentioned at the end of this section
are some other UUOs that are ever more obsolete in that they do not work.
In general, there are better ways
to do the things all of these UUOs do, but the documentation is included
for completeness and for the benefit of people trying to decode
rusty old programs which use these UUOs.  Users are to be discouraged
from using these in any new pieces of code.

.SS Old UUOs

Here are some UUOs that still work although they are generally unnecessary.

.UUO(INTIIP,CALLI,400031)
	INTIIP AC,
.UEND

The INTIIP UUO is designed to be given by a process running at interrupt level.
It returns in AC the bit representing the source of the current interrupt.
This is a copy of the value of ⊗→JOBCNI↔← at the time your interrupt-level
routine is started up.  Thus it is much more efficient to do a MOVE#AC,JOBCNI
and the results are the same.  If you give this UUO when you are not at
interrupt level, then zero is returned in AC.
.END

.UUO(USKIP,CALLI,400041)
	USKIP
	<return if no UUO in progress>
.UEND

The USKIP UUO can be used by an interrupt-level process to determine
if the interrupted program was in the middle of executing a UUO.
USKIP will skip if there was a UUO in progress at the time the interrupt
occurred and will take the direct return if no UUO was being executed.
Thus this UUO will tell you whether a UWAIT will return immediately.

The USKIP UUO is illegal except at interrupt level.
.END

.UUO(LIOTM,CALLI,400006)
	LIOTM
.UEND

The LIOTM UUO gets you out of IOT-USER mode, thus
making opcodes over 700 into UUOs again.  However, this function can be
achieved without doing a UUO at all.  For instance, a
.BEGIN SVERBATIM
	JRST 2,@[.+1]
.END CONTINUE
will also get you out of IOT-USER mode.  See the writeup of IOT-USER
mode in {YONAPP PDP10STUFF}.
.END

.UUO(RUNMSK,CALLI,400046)
	MOVEI  AC,<processor enable bits>
	RUNMSK AC,
.UEND

The RUNMSK UUO is intended to allow you to select which processor (the
PDP-10 or the PDP-6) should run your job.  However, the PDP-6 is not
capable of running jobs; thus this UUO is useless.
.END

.UUO(DDTIN,CALLI,1)
	MOVEI AC,ADR
	DDTIN AC,

ADR:	<21 word block for returned characters>
.UEND

The DDTIN UUO is used to read in all characters that have been typed on
the teletype attached to your job.  This UUO does not wait for any
special activation character; it just reads whatever is in the teletype
input buffer and returns those characters in the block pointed to by the
contents of AC.  This block should be at least 21 words long in order to
hold all the characters being read; at most =84 characters will be read.
The characters are returned as an
ASCIZ string at ADR (7 bits per character, 5 characters per word, with a
null (zero) byte after the last character read).

If the teletype input buffer is empty, this UUO will not return until a
character is typed.  Thus at least one character is returned each time
this UUO is given.

TTYUUO (see {YONSS TTYUUOSS}) provides generally more convenient ways of 
reading characters from the teletype.
.END

.UUO(DDTOUT,CALLI,3)
	MOVEI  AC,ADR
	DDTOUT AC,

ADR:	<ASCIZ string to be typed out>
.UEND

The DDTOUT UUO types out an ASCIZ string on the teletype.  AC should contain
the address of the first word of the string.  The string is terminated by the
first null (zero) byte.  The OUTSTR UUO (see {YON OUTSTRUUO})
is the recommended way of typing out strings although this UUO still works.
.END

.UUO(GETCHR,CALLI,6)
	MOVE   AC,[<device name in sixbit, or channel number>]
	GETCHR AC,
.UEND

The GETCHR UUO does exactly the same thing as the DEVCHR UUO; see {YON DEVCHRUUO}.
.END

.UUO(SEGSIZ,CALLI,400022)
	SEGSIZ AC,
.UEND

The SEGSIZ UUO returns in AC the size of your upper segment.  The size
returned is the protection constant of your segment, i.e.,
the number of words in it minus one.  If you
have no upper segment attached, zero is returned.

This segment size can be found out more easily by looking at JOBHRL
in the job data area (see {YONAPP JOBDATA}).
.END

.SS Privileged UUOs

The UUOs listed below are privileged UUOs designed for use only by the
LOGIN and LOGOUT programs.
.SKIP
.OLDUUO(LOGIN,CALLI,15)
.OLDUUO(LOGOUT,CALLI,17)

.SS Useless UUOs

Each of the following unimplemented UUOs is either illegal or a no-op.
.SKIP 2
.OLDUUO(DDTGT,CALLI,5)
.OLDUUO(DDTRL,CALLI,7)
.OLDUUO(TRPSET,CALLI,25)
.OLDUUO(TRPJEN,CALLI,26)
.OLDUUO(RUN,CALLI,35)
.OLDUUO(GETSEG,CALLI,40)
.OLDUUO(GETTAB,CALLI,41)
.OLDUUO(GDPTIM,CALLI,400065)
.OLDUUO(XPARMS,CALLI,400103)
.OLDUUO(,042)
.OLDUUO(,044)
.OLDUUO(,045)
.OLDUUO(,046)
.OLDUUO(,052)
.OLDUUO(,053)
.OLDUUO(,054)
.OLDUUO(,700)
.STANDARD BACK

.EVERY HEADING(,,);

.PORTION NUMBERTABLE
.PAGE FRAME 100 HIGH WCHARS WIDE
.AREA UUOS_BY_NUMBER LINES 10 TO 100 IN 5 COLUMNS 11 WIDE
.PLACE UUOS_BY_NUMBER  << this is the back cover of the manual >>
.BEGIN SELECT 4; NOFILL
-----UUOs-----
Opcode	Name
 040	CALL
 041	INIT
 043	SPCWAR
 047	CALLI
 050	OPEN
 051	TTYUUO
 055	RENAME
 056	IN
 057	OUT
 060	SETSTS
 061	STATO
 062	GETSTS
 063	STATZ
 064	INBUF
 065	OUTBUF
 066	INPUT
 067	OUTPUT
 070	CLOSE
 071	RELEAS
 072	MTAPE
 073	UGETF
 074	USETI
 075	USETO
 076	LOOKUP
 077	ENTER

 701	DPYCLR
 702	PPIOT
 703	UPGIOT
 704	UINBF
 705	UOUTBF
 706	FBREAD
 707	FBWRT
 710	MAIL
 711	PTYUUO
 712	POINTS
 713	UPGMVE
 714	UPGMVM
 715	PGIOT
 716	CHNSTS
 717	CLKINT
 720	INTMSK
 721	IMSKST
 722	IMSKCL
 723	INTUUO
.SKIP TO COLUMN 2
----CALLIs----
Number	Name
   0	RESET
   1	DDTIN
   2	SETDDT
   3	DDTOUT
   4	DEVCHR
   5	DDTGT
   6	GETCHR
   7	DDTRL
  10	WAIT
  11	CORE
  12	EXIT
  13	UTPCLR
  14	DATE
  15	LOGIN
  16	APRENB
  17	LOGOUT
  20	SWITCH
  21	REASSI
  22	TIMER
  23	MSTIME
  24	GETPPN
  25	TRPSET
  26	TRPJEN
  27	RUNTIM
  30	PJOB
  31	SLEEP
  32	SETPOV
  33	PEEK
  34	GETLN
  35	RUN
  36	SETUWP
  37	REMAP
  40	GETSEG
  41	GETTAB

400000	SPWBUT
400001	CTLV
400002	SETNAM
400003	SPCWGO
400004	SWAP
400005	EIOTM
400006	LIOTM
400007	PNAME
400010	UFBGET
400011	UFBGIV
.SKIP TO COLUMN 3
----CALLIs----
Number	Name
400012	UFBCLR
400013	JBTSTS
400014	TTYIOS
400015	CORE2
400016	ATTSEG
400017	DETSEG
400020	SETPRO
400021	SEGNUM
400022	SEGSIZ
400023	LINKUP
400024	DISMIS
400025	INTENB
400026	INTORM
400027	INTACM
400030	INTENS
400031	INTIIP
400032	INTIRQ
400033	INTGEN
400034	UWAIT
400035	DEBREA
400036	SETNM2
400037	SEGNAM
400040	IWAIT
400041	USKIP
400042	BUFLEN
400043	NAMEIN
400044	SLEVEL
400045	IENBW
400046	RUNMSK
400047	TTYMES
400050	JOBRD
400051	DEVUSE
400052	SETPR2
400053	GETPR2
400054	RLEVEL
400055	UFBPHY
400056	UFBSKP
400057	FBWAIT
400060	UFBERR
400061	WAKEME
400062	GETNAM
400063	SNEAKW
400064	SNEAKS
400065	GDPTIM
400066	SETPRV
.SKIP TO COLUMN 4
----CALLIs----
Number	Name
400067	DDCHAN
400070	VDSMAP
400071	DSKPPN
400072	DSKTIM
400073	SETCRD
400074	CALLIT
400075	XGPUUO
400076	LOCK
400077	UNLOCK
400100	DAYCNT
400101	ACCTIM
400102	UNPURE
400103	XPARMS
400104	DEVNUM
400105	ACTCHR
400106	UUOSIM
400107	PPSPY

----PPIOTs----
Number	Name
   0,	PPSEL
   1,	PPACT
   2,	DPYPOS
   3,	DPYSIZ
   4,	PPREL
   5,	PPINFO
   6,	LEYPOS
   7,	PPHLD

----PGIOTs----
Number	Name
   0,	PGSEL
   1,	PGACT
   2,	PGCLR
   3,	DDUPG
   4,	PGINFO

----INTUUOs---
Number	Name
   0,	INTJEN
   1,	IMSTW
   2,	IWKMSK
   3,	INTDMP
   4,	INTIPI
   5,	IMSKCR
.SKIP TO COLUMN 5
----TTYUUOs---
Number	Name
   0,	INCHRW
   1,	OUTCHR
   2,	INCHRS
   3,	OUTSTR
   4,	INCHWL
   5,	INCHSL
   6,	GETLIN
   7,	SETLIN
  10,	RESCAN
  11,	CLRBFI
  12,	CLRBFO
  13,	INSKIP
  14,	INWAIT
  15,	SETACT
  16,	TTREAD
  17,	OUTFIV


----PTYUUOs---
Number	Name
   0,	PTYGET
   1,	PTYREL
   2,	PTIFRE
   3,	PTOCNT
   4,	PTRD1S
   5,	PTRD1W
   6,	PTWR1S
   7,	PTWR1W
  10,	PTRDS
  11,	PTWRS7
  12,	PTWRS9
  13,	PTGETL
  14,	PTSETL
  15,	PTLOAD
  16,	PTJOBX


---MAIL UUOs--
Number	Name
   0,	SEND
   1,	WRCV
   2,	SRCV
   3,	SKPME
   4,	SKPHIM
   5,	SKPSEN
.END
.PAGE FRAME 100 HIGH WCHARS+10 WIDE;
.PORTION NAMETABLE  << this is the front cover of the manual >>;
.TITLE AREA FOOTING LINE 99;
.TITLE AREA MANUAL_TITLE LINE 5 CHARS 1 TO WCHARS;
.PLACE MANUAL_TITLE;
.CENTER; SELECT 6;
UUO MANUAL
.PLACE TEXT
.NOFILL; SELECT 4;
.AREA UUOS_BY_NAME LINES 10 TO 20 CHARS 1 TO WCHARS+1 IN 4 COLUMNS 19 WIDE;
.PLACE UUOS_BY_NAME;
Name........UUO......Page
.AT "<" UUONAM "≤" OP "≥" PAGENO ">" ⊂
.IF LINE≥7 THEN START; SKIP TO COLUMN COLUMN+1;
Name........UUO......Page
.END;
UUONAM{("        "[1 TO (8-CHAR)])}OP{
.("               "[1 TO (17-LENGTH("OP"&"PAGENO"))])}PAGENO
.⊃
.RECEIVE "<≤"